๋ฌธ์ ์ํฉ
์ฝ๋
"use client";
import Quill from "quill";
import { useEffect, useRef } from "react";
import Editor from "@/app/more/board/write/editor";
export default function EditorWrapper({
initialValue,
}: {
initialValue: string;
}) {
const quillRef = useRef<Quill | null>(null);
useEffect(() => {
if (!quillRef.current) return;
try {
const delta = JSON.parse(initialValue);
quillRef.current.setContents(delta);
} catch (error) {
console.error("Error parsing initialValue", error);
}
}, [quillRef.current, initialValue]);
useEffect(() => {
const form = document.querySelector("form");
form?.addEventListener("submit", () => {
if (quillRef.current) {
const delta = quillRef.current.getContents();
const input = document.createElement("input");
input.type = "hidden";
input.name = "content";
input.value = JSON.stringify(delta);
form.appendChild(input);
}
});
});
return <Editor ref={quillRef} />;
}
์์ธ
์ content๊ฐ ์ถ๊ฐ๊ฐ ์๋๋๋ ํ๋ฉด ์ด๋ฒคํธ ๋ฆฌ์ค๋๊ฐ ์ ์ถ ์ดํ์ ๋ฑ๋ก๋์ ๊ทธ๋ฐ๋ค๊ณ ํ๋ค. ๋ฌธ์ ์
- ์ฌ๊ธฐ์ ์์กด์ฑ ๋ฐฐ์ด์ด ์๊ณ
- ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ํด์ ํ์ง ์๊ณ ์ถ๊ฐํ๊ณ
- 3)์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ ๋๋ฌด ๋ฆ๊ฒ ์คํํ๋ค.
ํด๊ฒฐ
ํด๊ฒฐ์ฑ : content๋ฅผ ๋ด์ input hidden์ ๋ฃ๊ณ , useState๋ก ๊ฐ์ ์ ๋ ฅํด์ค๋ค.